#!/usr/bin/env python
"""
修复课程分配并重新分配
@file admin/run_fix_course_assignments.py
@description 一键修复金融班级被分配计算机课程的问题并重新分配正确的课程
@created 2024-07-25
"""

import os
import sys
import django

# 设置Django环境
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'ai_teach.settings')
django.setup()

import logging

# 导入修复脚本和重新分配脚本
# 确保当前目录在sys.path中，以便能够导入同级模块
current_dir = os.path.dirname(os.path.abspath(__file__))
if current_dir not in sys.path:
    sys.path.append(current_dir)

from fix_course_assignment import fix_course_assignment
from reassign_courses import reassign_courses

# 设置日志
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)

def run_fix_and_reassign():
    """
    运行修复和重新分配的完整流程
    """
    try:
        logger.info("="*50)
        logger.info("开始修复课程分配问题")
        logger.info("="*50)
        
        # 第一步：修复错误的课程分配
        fix_course_assignment()
        
        logger.info("="*50)
        logger.info("开始重新分配正确的课程")
        logger.info("="*50)
        
        # 第二步：重新分配正确的课程
        reassign_courses()
        
        logger.info("="*50)
        logger.info("全部操作完成")
        logger.info("="*50)
        
    except Exception as e:
        logger.error(f"运行过程中发生错误: {str(e)}")
        import traceback
        traceback.print_exc()

if __name__ == "__main__":
    run_fix_and_reassign() 